﻿using System;
using Xtee.Gen.XteeGen.XteeGenConfiguraton.Interfaces;

namespace Xtee.Gen.XteeGen.XteeGenConfiguraton.Entities {
    
    
    public class XteeGenConfiguraton : global::Xtee.Gen.XteeGen.XteeGenConfiguraton.Interfaces.IXteeGenConfiguraton {
        
        private String @__name;
        
        private String @__wsdlPath;
        
        private String @__modelOutputFolder;
        
        private String @__implOutputFolder;
        
        private Boolean @__generateOperationsNamely;
        
        public XteeGenConfiguraton() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public XteeGenConfiguraton(String @name, String @wsdlPath, String @modelOutputFolder, String @implOutputFolder, Boolean @generateOperationsNamely) {
            this.@__name = @name;
            this.@__wsdlPath = @wsdlPath;
            this.@__modelOutputFolder = @modelOutputFolder;
            this.@__implOutputFolder = @implOutputFolder;
            this.@__generateOperationsNamely = @generateOperationsNamely;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected XteeGenConfiguraton(IXteeGenConfiguraton @xteeGenConfiguraton) {
            this.@__name = @xteeGenConfiguraton.Name;
            this.@__wsdlPath = @xteeGenConfiguraton.WsdlPath;
            this.@__modelOutputFolder = @xteeGenConfiguraton.ModelOutputFolder;
            this.@__implOutputFolder = @xteeGenConfiguraton.ImplOutputFolder;
            this.@__generateOperationsNamely = @xteeGenConfiguraton.GenerateOperationsNamely;
        }
        
        public virtual String Name {
            get {
                return this.@__name;
            }
            set {
                this.@__name = value;
            }
        }
        
        public virtual String WsdlPath {
            get {
                return this.@__wsdlPath;
            }
            set {
                this.@__wsdlPath = value;
            }
        }
        
        public virtual String ModelOutputFolder {
            get {
                return this.@__modelOutputFolder;
            }
            set {
                this.@__modelOutputFolder = value;
            }
        }
        
        public virtual String ImplOutputFolder {
            get {
                return this.@__implOutputFolder;
            }
            set {
                this.@__implOutputFolder = value;
            }
        }
        
        public virtual Boolean GenerateOperationsNamely {
            get {
                return this.@__generateOperationsNamely;
            }
            set {
                this.@__generateOperationsNamely = value;
            }
        }
    }
}
